﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>监听事件 (界面) - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 监听事件 method of a 界面 or 界面控件 对象 registers a function or method to be called when the given event is raised by a 界面 window or control." />
<meta name="ahk:equiv-v1" content="commands/Gui.htm#Labels" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css">
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>监听事件</h1>
<p>注册一个函数或方法, 当 界面 窗口或控件发生给定事件时, 该函数或方法将被调用.</p>
<pre class="Syntax">对象.<span class="func">监听事件</span>(EventName, Callback <span class="optional">, AddRemove := 1</span>)</pre>

<h2 id="Parameters">参数</h2>
<dl>
  <dt>对象</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#objects">对象</a></p>
    <p><a href="Gui.htm">Gui</a> 或 <a href="GuiControl.htm">界面控件</a> 对象.</p>
  </dd>
  
  <dt>EventName</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>事件的名称.</p>
  </dd>
  
  <dt>Callback</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a>或<a href="../Concepts.htm#objects">对象</a></p>
    <p>事件发生时要调用的函数, 方法或对象.</p>
    <p>如果这个参数是一个字符串, 它的含义取决于 界面 是否有<a href="../objects/Gui.htm#EventObj">事件接收器</a>(即是否指定了 <a href="../objects/Gui.htm#New">界面.新建</a> 的 <em>EventObj</em> 参数). 如果 界面 有事件接收器, 那么这个字符串必须是属于事件接收器的方法的名称; 否则, 它必须是一个函数的名称.</p>
    <p>无论 界面 是否有事件接收器, 要注册一个函数, 请传递<a href="Func.htm">函数引用</a>.</p>
  </dd>
  
  <dt>AddRemove</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>以下数值之一:<br>
    <strong>1</strong>(默认): 在任何先前注册的回调之后调用回调.<br>
    <strong>-1</strong>: 在任何先前注册的回调之前调用回调.<br>
    <strong>0</strong>: 不调用该回调.</p>
  </dd>
</dl>

<h2 id="Callback_Parameters">Callback 参数</h2>
<p>如果回调是按名称注册的方法, 其隐藏的 <a href="../Objects.htm#Custom_Classes_method"><em>this</em> 参数</a>无缝事件接收器对象(即该方法所属的对象). 这个参数在本文档的参数列表中没有显示.</p>
<p>由于 <em>Callback</em> 可以是一个对象, 它可以是一个 <a href="Functor.htm#BoundFunc">BoundFunc 对象</a>, 在参数列表的开头插入额外的参数, 然后调用另一个函数. 这是一种通用的技术, 不是 监听事件 所特有的, 所以一般被本文档的其他部分忽略.</p>
<p>回调的第一个显式参数是 <em>对象</em>; 即触发事件的 <a href="Gui.htm">Gui</a> 或 <a href="GuiControl.htm">界面控件</a> 对象. 唯一的例外是, 当 界面 <a href="Gui.htm#EventObj">处理自己的事件</a>时, this 参数会被省略, 因为 <code>this</code> 已经包含了对 界面 的引用.</p>
<p>许多事件都传递了关于事件的附加参数, 每个事件都有描述.</p>
<p>与所有动态调用的方法或函数一样, 回调不需要声明回调本身不需要的参数, 但在这种情况下, 必须指定一个星号作为最终参数. 如果一个事件的参数多于回调声明的参数, 那么这些参数将被忽略(除非回调是<a href="../Functions.htm#Variadic">可变参数的</a>).</p>
<p>回调可以声明比事件提供的参数更多的参数, 如果(而且只有当) 额外的参数被声明为可选参数. 然而, 不建议使用可选参数, 因为未来的程序版本可能会用额外的参数来扩展一个事件, 在这种情况下, 可选参数将停止接收它们的默认值.</p>

<h2 id="Callback_Return_Value">Callback 返回值</h2>
<p>如果一个事件已经注册了多个回调, 回调可以返回一个非空值, 以防止任何剩余的回调被调用.</p>
<p>对于特定的事件, 返回值可能有额外的意义. 例如, <a href="#Close">关闭</a> 回调可以返回一个非零的数字(例如 <code>true</code>) 来防止 界面 窗口关闭.</p>

<h2 id="Callback_Name">Callback 名称</h2>
<p>按照惯例, 为了清晰起见, 下面每个事件的语法都用 <code><i>ObjectType</i>_<i>EventName</i></code> 这种形式的函数名来显示. 脚本不需要遵循这个惯例, 可以使用任何有效的函数名.</p>

<h2 id="Threads">线程</h2>
<p>每个事件回调都是在一个新的<a href="../misc/Threads.htm">线程</a>中调用的, 因此会以诸如 <a href="../commands/SendMode.htm">发送模式</a> 等设置的默认值重新开始. 这些默认值可以在<a href="../Scripts.htm#auto">脚本启动时</a>更改.</p>
<p>每当一个 界面 <a href="../misc/Threads.htm">线程</a>被启动时, 该线程的<a href="../misc/WinTitle.htm#LastFoundWindow">上次找到的窗口</a>都会作为 界面 窗口本身启动. 这使得窗口和控件的函数 -- 如 <a href="../commands/WinGetStyle.htm">获取窗口样式</a>, <a href="../commands/WinSetTransparent.htm">设置窗口透明度</a> 和 <a href="../commands/ControlGetFocus.htm">获取焦点控件</a> -- 在对 界面 窗口本身进行操作时可以省略 WinTitle 和 WinText(即使它是隐藏的).</p>
<p>除非另有说明, 每个事件被限制为每个对象一次只能有一个线程. 如果一个事件在由该事件启动的前一个线程结束之前被触发, 则该事件通常会被丢弃. 为了防止这种情况发生, 请使用 <a href="../commands/Critical.htm">霸体</a> 作为回调的第一行(然而, 这也将缓冲/延迟其他<a href="../misc/Threads.htm">线程</a>, 例如按下热键).</p>

<h2 id="Destroying_the_GUI">销毁 GUI</h2>
<p>当 界面 被销毁时, 所有的事件回调都被释放. 因此, 如果 界面 在事件被派发时被销毁, 那么后续的事件回调就不会被调用. 为了清晰起见, 在销毁 界面 后, 回调应该<a href="#Callback_Return_Value">返回一个非空值</a>.</p>

<h2 id="Events">事件</h2>
<p><a href="Gui.htm">Gui</a> 对象支持以下事件:</p>
<table class="info" id="Window_Events">
  <tr><th>事件</th><th>当...时触发</th></tr>
  <tr><td><a href="#Close">关闭</a></td><td>关闭窗口.</td></tr>
  <tr><td><a href="#ContextMenu">关联菜单</a></td><td>用户在窗口内右键单击或按下 <kbd>Menu</kbd> 键或 <kbd>Shift</kbd>+<kbd>F10</kbd>.</td></tr>
  <tr><td><a href="#DropFiles">拖动文件</a></td><td>文件/文件夹被拖放到窗口上.</td></tr>
  <tr><td><a href="#Escape">退出</a></td><td>当 界面 窗口处于活动状态时, 用户按下 退出 键.</td></tr>
  <tr><td><a href="#Size">大小</a></td><td>窗口被调整大小, 最小化, 最大化或还原.</td></tr>
</table>
<p>根据控件类型, <a href="GuiControl.htm">界面控件</a> 对象支持以下事件:</p>
<table class="info" id="Control_Events">
  <tr><th>事件</th><th>当...时触发</th></tr>
  <tr><td><a href="#Change">改变</a></td><td>控件的值发生变化.</td></tr>
  <tr><td><a href="#Click">点击</a></td><td>控件被点击.</td></tr>
  <tr><td><a href="#DoubleClick">双击</a></td><td>控件被双击.</td></tr>
  <tr><td><a href="#ColClick">ColClick</a></td><td>ListView 的一个列头被点击.</td></tr>
  <tr><td><a href="#Ctrl-ContextMenu">关联菜单</a></td><td>当控件具有键盘焦点时, 用户右键单击控件或按下 <kbd>Menu</kbd> 键或 <kbd>Shift</kbd>+<kbd>F10</kbd>.</td></tr>
  <tr><td><a href="#Focus">焦点</a></td><td>控件获得键盘焦点.</td></tr>
  <tr><td><a href="#LoseFocus">失去焦点</a></td><td>控件失去键盘焦点.</td></tr>
  <tr><td><a href="#ItemCheck">项选中</a></td><td>ListView 或 TreeView 的项目被选中或取消选中.</td></tr>
  <tr><td><a href="#ItemEdit">项编辑</a></td><td>用户编辑 ListView 或 TreeView 项的标签.</td></tr>
  <tr><td><a href="#ItemExpand">项折叠</a></td><td>TreeView 项目被展开或折叠.</td></tr>
  <tr><td><a href="#ItemFocus">项焦点</a></td><td>ListView 中改变聚焦的项目.</td></tr>
  <tr><td><a href="#ItemSelect">项选择</a></td><td>ListView 或 TreeView 项目被选中, 或者一个 ListView 项目被取消选择.</td></tr>
</table>

<h2 id="Window_Events">窗口事件</h2>

<h3 id="Close">关闭</h3>
<p>当用户或其他程序试图关闭窗口时, 如按下标题栏中的 X 按钮, 从系统菜单中选择 "关闭", 或调用 <a href="../commands/WinClose.htm">关闭窗口</a>, 则启动该函数.</p>
<pre class="Syntax">Gui_<span class="func">关闭</span>(GuiObj)</pre>
<p>默认情况下, 回调返回后或者没有注册回调, 窗口会自动隐藏. 回调可以通过返回 1(或 <code>true</code>) 来阻止这种情况, 这也将阻止任何剩余的回调被调用. 回调可以通过调用 <a href="Gui.htm#Hide">Gui.Hide</a> 立即隐藏窗口, 或者通过调用 <a href="Gui.htm#Destroy">Gui.Destroy</a> 销毁窗口.</p>
<p>例如, 这个 界面 在关闭前会显示一个确认提示:</p>
<pre>myGui := 界面.新建()
myGui.AddText("", "Press Alt+F4 or the X button in the title bar.")
myGui.监听事件("Close", "myGui_Close")
myGui_Close(thisGui) {  <em>; 声明中 this 参数是可选的.</em>
    如果 信息框("Are you sure you want to 关闭 the GUI?",, "y/n") = "No"
        返回 true  <em>; true = 1</em>
}
myGui.显示</pre>

<h3 id="ContextMenu">关联菜单</h3>
<p>每当用户在窗口中除标题栏和菜单栏外的任何地方单击右键时就会启动. 当按下 <kbd>Menu</kbd> 键或 <kbd>Shift</kbd>+<kbd>F10</kbd> 键时, 也会启动.</p>
<pre class="Syntax">Gui_<span class="func">关联菜单</span>(GuiObj, GuiCtrlObj, Item, IsRightClick, X, Y)</pre>
<dl><dt>GuiCtrlObj</dt><dd><p>接收事件的控件的 <a href="GuiControl.htm">界面控件 对象</a>(如果没有则为空白).</p></dd>
  <dt>Item</dt><dd>
    <p>当 ListBox, ListView 或 TreeView 是上下文菜单的目标时(由 <em>GuiCtrlObj</em> 决定), <em>Item</em> 指定控件的哪个项目是目标.</p>
    <p><a href="../commands/GuiControls.htm#ListBox">ListBox</a>: 当前焦点行的编号. 请注意, 标准的 ListBox 在右键单击时不会聚焦一个项目, 所以这可能不是被单击的项目.</p>
    <p><a href="../commands/ListView.htm">ListView</a> 和 <a href="../commands/TreeView.htm">TreeView</a>: 对于右键点击, <em>Item</em> 包含被点击的项目的 ID 或行号(如果用户点击的不是项目, 则为 0). 对于 AppsKey 和 Shift-F10, <em>Item</em> 包含所选项目的 ID 或行号.</p></dd>
  <dt>IsRightClick</dt><dd>
    <p>如果用户点击了鼠标右键, 则为 <code>True</code>.<br>
    如果用户按下了 <kbd>Menu</kbd> 键或 <kbd>Shift</kbd>+<kbd>F10</kbd>, 则为 <code>False</code>.</p></dd>
  <dt>X, Y</dt><dd><p>脚本应该显示菜单的 X 和 Y 坐标(例如 <code>MyContextMenu.<a href="../objects/Menu.htm#Show">显示</a> X, Y</code>). 坐标是相对于窗口客户端区域的左上角.</p></dd>
</dl>
<p>与大多数其他 界面 事件不同, 关联菜单 事件可以有一个以上的并发<a href="../misc/Threads.htm">线程</a>.</p>
<p>每个控件都可以有自己的 关联菜单 事件回调, 该回调在为 界面 对象注册的任何回调之前被调用. 特定于控件的回调省略了 <em>GuiObj</em> 参数, 但所有其他参数都是一样的.</p>
<p>注意: 由于 <a href="../commands/GuiControls.htm#Edit">Edit</a> 和 <a href="../commands/GuiControls.htm#MonthCal">MonthCal</a> 控件有自己的上下文菜单, 所以在其中一个控件中右击不会启动 关联菜单 事件.</p>

<h3 id="DropFiles">拖动文件</h3>
<p>每当文件/文件夹作为拖放操作的一部分被放置到窗口时, 就会启动该回调(但如果该回调已经运行, 则忽略拖拽事件).</p>
<pre class="Syntax">Gui_<span class="func">拖动文件</span>(GuiObj, GuiCtrlObj, FileArray, X, Y)</pre>
<dl>
  <dt>GuiCtrlObj</dt>
  <dd><p>文件被拖拽到的控件的 <a href="GuiControl.htm">界面控件 对象</a>(如果没有则为空白).</p></dd>

  <dt>FileArray</dt>
  <dd><p>一个文件名的<a href="../Objects.htm#Usage_Simple_Arrays">数组(对象)</a>, 其中 <code>FileArray[1]</code> 是第一个文件, <code>FileArray.Length</code> 返回文件的数量. 可以使用 <a href="../commands/For.htm">遍历-loop</a> 来迭代文件:</p>
<pre>Gui_DropFiles(GuiObj, GuiCtrlObj, FileArray, X, Y) {
    遍历 i, file in FileArray
        信息框 "File " i " is:`n" file
}</pre></dd>

  <dt>X, Y</dt>
  <dd><p>文件拖拽位置的 X 和 Y 坐标, 相对于窗口客户端区域的左上角.</p></dd>
</dl>

<h3 id="Escape">退出</h3>
<p>当用户在 界面 窗口处于活动状态时按下 <kbd>退出</kbd> 键时启动.</p>
<pre class="Syntax">Gui_<span class="func">退出</span>(GuiObj)</pre>
<p>默认情况下, 按下 <kbd>退出</kbd> 键没有效果. 已知限制: 如果窗口中的第一个控件被禁用(可能取决于控件类型), 退出 事件将不会启动. 可能有其他情况会产生这种效果.</p>

<h3 id="Size">大小</h3>
<p>当窗口被调整大小, 最小化, 最大化或还原时启动.</p>
<pre class="Syntax">Gui_<span class="func">大小</span>(GuiObj, MinMax, Width, Height)</pre>
<dl>
  <dt>MinMax</dt><dd><p>以下数值之一:</p>
    <p>0: 窗口既没有最小化也没有最大化.<br>
       1: 窗口已最大化.<br>
      -1: 窗口被最小化.</p>
    <p>请注意, 已最大化的窗口可以在不恢复/取消最大化的情况下调整大小, 因此值为 1 并不一定意味着该事件是在用户最大化窗口的情况下发生的.</p></dd>
  <dt>Width, Height</dt><dd>窗口客户端区域的新宽度和高度, 即不包括标题栏, 菜单栏和边框的区域.</dd>
</dl>
<p>脚本可以使用 大小 事件来重新定位和调整控件的大小, 以响应用户对窗口的大小调整.</p>
<p>当窗口被调整大小时(即使是由脚本调整), 大小 事件可能不会立即被触发. 与其他窗口事件一样, 如果当前线程是<a href="../commands/Thread.htm#Interrupt">不可中断的</a>, 那么在线程变得可中断之前, 大小 事件不会被触发. 如果脚本刚刚调整了窗口的大小, 请按照这个例子来确保 大小 事件立即被触发:</p>
<pre><a href="../commands/Critical.htm#Off">霸体</a> "Off"  <em>; 即使从未使用 霸体 "On".</em>
<a href="../commands/Sleep.htm">等待</a> -1</pre>
<p><a href="Gui.htm#Show">Gui.显示</a> 会自动 <code>等待 -1</code>, 所以在这种情况下一般不需要调用 等待.</p>

<h2 id="Control_Events_13">控件事件</h2>

<h3 id="Change">改变</h3>
<p>控件的值发生变化时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">改变</span>(GuiCtrlObj, Info)</pre>
<dl>
  <dt>Info</dt>
  <dd>
    <p>对于 <a href="../commands/GuiControls.htm#Slider">Slider</a> 控件, <em>Info</em> 是一个数值, 表示滑块如何移动. 有关详情, 请参阅<a href="../commands/GuiControls.htm#slider-change">检测变化(Slider)</a>.</p>
    <p>对于所有其他控件, <em>Info</em> 目前没有任何意义.</p>
  </dd>
</dl>
<p>要获取控件的新值, 请使用 <a href="GuiControl.htm#Value">GuiCtrlObj.Value</a>.</p>
<p>适用于: <a href="../commands/GuiControls.htm#DDL">DDL</a>, <a href="../commands/GuiControls.htm#ComboBox">ComboBox</a>, <a href="../commands/GuiControls.htm#ListBox">ListBox</a>, <a href="../commands/GuiControls.htm#Edit">Edit</a>, <a href="../commands/GuiControls.htm#DateTime">DateTime</a>, <a href="../commands/GuiControls.htm#MonthCal">MonthCal</a>, <a href="../commands/GuiControls.htm#Hotkey">热键</a>, <a href="../commands/GuiControls.htm#UpDown">UpDown</a>, <a href="../commands/GuiControls.htm#Slider">Slider</a>, <a href="../commands/GuiControls.htm#Tab">Tab</a>.</p>

<h3 id="Click">点击</h3>
<p>控件被点击时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">点击</span>(GuiCtrlObj, Info)
Link_<span class="func">点击</span>(GuiCtrlObj, Info, Href)</pre>
<dl>
  <dt>Info</dt>
  <dd>
    <p>ListView: 点击的项目的行号, 如果鼠标没有在项目上, 则为 0.</p>
    <p>TreeView: 点击的项目的 ID, 如果鼠标没有放在项目上, 则为 0.</p>
    <p>Link: 如果有的话, 链接的 ID 属性(字符串), 否则为链接的索引(整数).</p>
    <p>StatusBar: 点击的部分的编号(然而, 如果用户点击在栏右边的大小抓手附近, 编号可能是一个很大的整数).</p>
    <p>对于所有其他控件, <em>Info</em> 目前没有任何意义.</p>
  </dd>
  <dt>Href</dt>
  <dd><p>Link: 链接的 HREF 属性. 注意, 如果注册了 点击 事件回调, HREF 属性不会自动执行.</p></dd>
</dl>
<p>适用于: <a href="../commands/GuiControls.htm#Text">Text</a>, <a href="../commands/GuiControls.htm#Pic">Pic</a>, <a href="../commands/GuiControls.htm#Button">Button</a>, <a href="../commands/GuiControls.htm#Checkbox">CheckBox</a>, <a href="../commands/GuiControls.htm#Radio">Radio</a>, <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>, <a href="../commands/GuiControls.htm#Link">Link</a>, <a href="../commands/GuiControls.htm#StatusBar">StatusBar</a>.</p>

<h3 id="DoubleClick">双击</h3>
<p>当控件被双击时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">双击</span>(GuiCtrlObj, Info)</pre>
<dl>
  <dt>Info</dt>
  <dd>
    <p>ListView, TreeView 和 StatusBar: 与 <a href="../objects/GuiOnEvent.htm#Click">点击</a> 事件相同.</p>
    <p>ListBox: 聚焦项的位置. 双击最后一个项目下面的空白处, 通常会聚焦最后一个项目, 并保持原样.</p>
  </dd>
</dl>
<p>适用于: <a href="../commands/GuiControls.htm#Text">Text</a>, <a href="../commands/GuiControls.htm#Pic">Pic</a>, <a href="../commands/GuiControls.htm#Button">Button</a>, <a href="../commands/GuiControls.htm#Checkbox">CheckBox</a>, <a href="../commands/GuiControls.htm#Radio">Radio</a>, <a href="../commands/GuiControls.htm#ComboBox">ComboBox</a>, <a href="../commands/GuiControls.htm#ListBox">ListBox</a>, <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>, <a href="../commands/GuiControls.htm#StatusBar">StatusBar</a>.</p>

<h3 id="ColClick">ColClick</h3>
<p>当 ListView 的一个列头被点击时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">ColClick</span>(GuiCtrlObj, Info)</pre>
<dl>
  <dt>Info</dt>
  <dd><p>被点击的以 1 开始的列号. 这是创建列时分配的原始编号; 也就是说, 它不反映用户对列的任何拖放.</p></dd>
</dl>
<p>适用于: <a href="../commands/ListView.htm">ListView</a>.</p>

<h3 id="Ctrl-ContextMenu">关联菜单</h3>
<p>当控件具有键盘焦点时, 用户右键单击控件或按下 <kbd>Menu</kbd> 键或 <kbd>Shift</kbd>+<kbd>F10</kbd> 时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">关联菜单</span>(GuiCtrlObj, Item, IsRightClick, X, Y)</pre>
<p>遍历 details, 请参阅 <a href="#ContextMenu">关联菜单</a>.</p>
<p>适用于: 除了 Edit 和 MonthCal(以及 ComboBox 内的 Edit 控件)(他们都有自己的标准上下文菜单) 外的所有控件,.</p>

<span id="LoseFocus"></span><h3 id="Focus">焦点 / 失去焦点</h3>
<p>控件获得或失去键盘焦点时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">焦点</span>(GuiCtrlObj, Info)
Ctrl_<span class="func">失去焦点</span>(GuiCtrlObj, Info)</pre>
<dl>
  <dt>Info</dt>
  <dd><p>保留.</p></dd>
</dl>
<p>适用于: <a href="../commands/GuiControls.htm#Button">Button</a>, <a href="../commands/GuiControls.htm#Checkbox">CheckBox</a>, <a href="../commands/GuiControls.htm#Radio">Radio</a>, <a href="../commands/GuiControls.htm#DDL">DDL</a>, <a href="../commands/GuiControls.htm#ComboBox">ComboBox</a>, <a href="../commands/GuiControls.htm#ListBox">ListBox</a>, <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>, <a href="../commands/GuiControls.htm#Edit">Edit</a>, <a href="../commands/GuiControls.htm#DateTime">DateTime</a>.</p>
<p>不支持: <a href="../commands/GuiControls.htm#Hotkey">热键</a>, <a href="../commands/GuiControls.htm#Slider">Slider</a>, <a href="../commands/GuiControls.htm#Tab">Tab</a> 和 <a href="../commands/GuiControls.htm#Link">Link</a>. 注意 <a href="../commands/GuiControls.htm#Text">Text</a>, <a href="../commands/GuiControls.htm#Pic">Pic</a>, <a href="../commands/GuiControls.htm#MonthCal">MonthCal</a>, <a href="../commands/GuiControls.htm#UpDown">UpDown</a> 和 <a href="../commands/GuiControls.htm#StatusBar">StatusBar</a> 控件不接受键盘焦点.</p>

<h3 id="ItemCheck">项选中</h3>
<p>当 ListView 或 TreeView 项目被选中或取消选中时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">项选中</span>(GuiCtrlObj, Item, Checked)</pre>
<p>适用于: <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>.</p>

<h3 id="ItemEdit">项编辑</h3>
<p>用户编辑 ListView 或 TreeView 项的标签时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">项编辑</span>(GuiCtrlObj, Item)</pre>
<p>只有在控件的选项中使用了 <code>-ReadOnly</code>, 才能编辑项目的标签.</p>
<p>适用于: <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>.</p>

<h3 id="ItemExpand">项折叠</h3>
<p>TreeView 项目被展开或折叠时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">项折叠</span>(GuiCtrlObj, Item, Expanded)</pre>
<p>适用于: <a href="../commands/TreeView.htm">TreeView</a>.</p>

<h3 id="ItemFocus">项焦点</h3>
<p>当 ListView 中的焦点项目发生变化时触发该事件.</p>
<pre class="Syntax">Ctrl_<span class="func">项焦点</span>(GuiCtrlObj, Item)</pre>
<p>适用于: <a href="../commands/ListView.htm">ListView</a>.</p>

<h3 id="ItemSelect">项选择</h3>
<p>当 ListView 或 TreeView 项目被选中或 ListView 项目被取消选择时触发该事件.</p>
<pre class="Syntax">ListView_<span class="func">项选择</span>(GuiCtrlObj, Item, Selected)
TreeView_<span class="func">项选择</span>(GuiCtrlObj, Item)</pre>
<p>适用于: <a href="../commands/ListView.htm">ListView</a>, <a href="../commands/TreeView.htm">TreeView</a>.</p>
<p>ListView: 该事件对每一个被取消选择或选择的项目都会被触发一次, 所以可以对用户的一个动作进行多次响应.</p>


<h2 id="Other_Events">其他事件</h2>
<p>其他类型的 界面 事件可以通过 <a href="GuiOnNotify.htm">OnNotify</a>, <a href="GuiOnCommand.htm">OnCommand</a> 或 <a href="../commands/OnMessage.htm">在收到消息时</a> 来检测和处理. 例如, 每当用户将鼠标移动到窗口中的特定控件上时, 脚本可以通过ToolTip显示上下文相关的帮助. 这在 <a href="Gui.htm#ExToolTip">界面 工具提示 的例子</a>中进行了演示.</p>


</body>
</html>